import router from './router'
import store from '@/store'

router.beforeEach(async(to, from, next) => {
  const token = store.getters.token
  const url = to.path
  const whiteList = ['/login', '404']
  // 有 token 去登录页面 =》首页
  if (token && url === '/login') {
    next('/')
  }

  // 有 token 不是去登录页面 =》放行
  if (token && url !== '/login') {
    // 第一次进入页面保存Id 后面访问不会重复发起数据请求
    if (!store.state.user.userInfo.userId) {
      // 如果没有id这个值 才会调用 vuex的获取资料的action
      // 数据获取完后才执行以下数据
      await store.dispatch('user/getUserInfo')
    }
    next()
  }

  // 没 token 允许不登录就查看页面
  if (!token && whiteList.includes(url)) {
    next()
  }

  // 没 token 其他页面，跳转登录页面
  if (!token && !whiteList.includes(url)) {
    next('/login')
  }

//   if (store.getters.token) {
//     // 有 token 去登录页面 =》首页
//     if (to.path === '/login') {
//       next('/')
//     } else {
//     // 有 token 不是去登录页面 =》放行
//       next()
//     }
//   } else {
//     // 跳转到登录页面或者报错404
//     const whiteList = ['/login', '404']
//     // indexOf为下标
//     // if (whiteList.indexOf(to.path) !== -1) {
//     if (whiteList.includes(to.path)) {
//     // 没 token 允许不登录就查看页面
//       next()
//     } else {
//     // 没 token 其他页面，跳转登录页面
//       next('/login')
//     }
//   }
})
